Rebirth MIDI

Alpha Version 0.1
(c) 1998 Chilled Dreams
This Buzz-Plugin is freeware. Dedicated to ya'all Rebirth lovers.



What does thins thing

This Buzz machine is made to sync MIDI-Device with Buzz and send some MIDI-controller messages. My intention was to sync Rebirth with Buzz and so the MIDI features are limited to MIDI sync, controller sends and Note-On (with immediate Note-Off). That's all what I need for remote controlling Rebirth.

Limitations

Because of the limited features in Buzz regarding to sequencing infos, song position, start/stop and so on it's something complicated to let the sync work.
When hitting the Play-Button on Buzz no automatic MIDI Start would be send. This is because Buzz don't tells the machines if the Song is runnig. Instead you must enter a start command in a Pattern. The same is true for MIDI Continue and Song Position. Stop is handled automatically (Buzz tells the machines when you stop the song).

Installation / Settings

Copy the machine into the gear\generators directory. The Machine is called "Rebirth MIDI".
There are following settings:
MIDI Out Device The device for MIDI Out
I'm not using Buzz's MIDI-Settings this time! I'm opening a separate Device. This could be changed in the future.
sync adjust adjusts the starting time of the MIDI-Syncs
play around with this value
controller channel Guess! The Channel for the controller- and note-Sends
You also can setup the MIDI-device with the menu-item "Select MIDI Out Device". It's more comfortable than to enter a value.

If you're using both programs (Rebirth and Buzz) on one computer you need a MIDI-Loopback-Device. Try MIDI-Yoke or HLD (contained on the Rebirth CD). This takes the MIDI-Output of one program and sends it to another.


Commands in the Patterns

0 - MIDI Start Send a MIDI Start. After this the MIDI timeclocks are sent.
A MIDI Start lets a song playing from it's beginning.
1 - MIDI Continue Send a MIDI Continue and then the timing clocks.
So a connected MIDI slave continues playing the song from where it was stopped before or from the position you've cued to.
2 - Song Position Send a MIDI Song Position. Buzz don't tells me the current song position. So if you wanna use this, you must enter this manually.
A Song Position is given in "MIDI-Beats". A MIDI-Beat is on Step or Row (on 4/4-Beat).
This feature is currently untested

Timing clocks are sent until you hit the "Pause"-Button in Buzz. When playin' again the connected slave starts to work on the next Continue or Start Command (that you've entered in a pattern).


Commands for a Track

In every track you can send a Controller and a Note-On. The statusline shows a little help for the controller values. Rebirth 2.0 standard mapping is assumed.
See the MIDI-Tables for the right controller values and MIDI-Notes!


Guide to use

Create a pattern named Start (or whatever). At the beginning in the pattern enter the command "0" (Start).
Create a pattern named Continue (or what you like). Here use the command "1" (Continue).
In the song sequencer you should set the Start pattern at the beginning. The continue patterns can follow if you need to continue the song on every position.
Sometimes Rebirth needs a short while to sync correctly after a Start. So it could be useful to add an empty startup pattern before the real song begin on both programs.


Performance problems

I think you need a fast computer if your're rocking Rebirth and Buzz on a single station.
My 233 MHz AMD is suckin' up when the music contains more than some drums. On a 300 MHz PII it's running well. Also the timing is more stable on a faster machine.


Timing problems

Buzz uses a more or less large wave buffer for preparing the sound. This means that a sound is not played immediately when created but with a short delay. Because of that every MIDI-Clock would comes too early. I'm calculating a short delay, which is exactly the difference between wave creation and wave playing (assuming Buzz tells no lies).
So the timing is correct for Buzz's side. On Rebirth there's also a wave buffer. You can play with the machine attributes (sync adjust) to compensate this difference.





Bug-Reports, flames etc:
eMail: hagen.raab@gmx.net
Homepage: http://home.pages.de/~ChilledDreams/